package com.dymall.common.config;

import com.dymall.common.interceptors.UserInfoInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration//配置类
@ConditionalOnClass(DispatcherServlet.class)//springboot自动装配的条件注解;
// 网关部分是基于非阻塞式编程，不包含SpringMvc,其他微服务包含SpringMvc。
// DispatcherServlet是springMvc的核心API，所有springMvc项目都具备,作为生效条件
public class MvcConfig implements WebMvcConfigurer {
    //WebMvcConfigurer 是springMvc中的接口，模块hm-gateway是非阻塞式的响应式编程，没有springMvc

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //添加拦截器
        registry.addInterceptor(new UserInfoInterceptor());//不设置拦截路径即拦截所有路径
    }
}//不同包下的配置类要想在springboot中生效，需要在 resources/META-INF/spring.factories 中记录配置类(springboot自动装配原理)
